iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 7
0
自我挑戰組

Tensorflow.js初學筆記系列 第 7

Day6 Tensorflow.js機器學習Part6

  • 分享至 

  • xImage
  •  

Embeddings

在自然語言辨識等問題上,可能會有多個稀疏的特徵向量,這些向量組成的高維向量空間,在機器學習上並不能很好的處理,此時就要透過嵌入(Embeddings)來將其映射到低維度的向量空間中

例如在做影片推薦時,我們需要判斷影片的相似性
此時每個用戶觀看哪個影片是個
非常高維(有很多影片)
但稀疏(大部分人看的影片通常占所有影片的很少部分),

這樣會有什麼問題呢?
特徵與其權重變得很多,要訓練好的模型所需要的資料就更多
特徵與其權重變得很多,訓練或使用模型就需要更多的計算量
而且這個題目中,每個特徵向量缺乏有意義的關係

所以這時候就要透過嵌入來將高維度資料映射到低維度空間中
簡單來說,就是先分類
將相似的特徵合併、相異分開,例如動畫片與真人秀分開
常見的嵌入分類方式,可以可以透過主成分分析或者將嵌入的方式作為神經網路學習的一部份來處理

Production ML Systems

如果要實作一個使用機器學習的產品時,除了實現機器學習的程式碼之外,還必須要考慮很多的事,其實從這幾天的學習過程中,大致也能夠想到。
比如最重要的資料就包含

  1. 如何收集有用的資料並儲存
  2. 如何對資料進行驗證(檢查空值、異常值等等)
    在進入機器學習前還必須
  3. 選取必要特徵
  4. 配置訓練驗證測試、機器學習超參數……
  5. 取得計算資源、配置計算環境……
    開始機器學習時
  6. 程式資源管理
  7. 監控與紀錄和分析工具
    當然有些都可以透過現有的工具完成,不用自己一個一個建立,不過還是必須先知道自己想要什麼樣的系統。
    廣義來說,訓練方式共有兩種
    一種是靜態的,只訓練一個模型,然後直接使用訓練好的模型,好處是比較容易建構和測試,缺點是可能會跟不上資料的變化。
    一種是動態的,資料會不斷進入系統進行訓練,不斷更新成新的模型,缺點就是比較麻煩,為了防止模型被資料汙染,必須要進行監控,而且要有設定模型備份以便重建,還必須進行資料隔離等等,好處就是會不斷根據現有資料做出模型調整。

就預測而言也可以大致分為兩種
一種是離線,先進行預測把結果存入表格,等待讀取。
一種是線上,根據輸入特徵及時演算結果。

再來就對資料的依賴關係進行管理
因為資料決定系統的行為
所以必須思考

如何驗證資料的可靠性
如何對資料進行版本控制
如何決定特徵對系統本身是否是必要的?
資料跟資料之間是否有相關性,是不是需要另外處理?
那些輸入會受到模型輸出的影響?

(最後一個比較不好想,可以想想例如管理水庫容量的決策系統,容量影響系統決策(輸出),系統的決策(輸出)又會影響容量)


上一篇
Day5 Tensorflow.js機器學習Part5
下一篇
Day7 Tensorflow.js機器學習Part7
系列文
Tensorflow.js初學筆記27
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言